package modelo;

import java.util.List;

import excepciones.CantidadDePosicionesIncorrectasExcepcion;

public class Buque extends Barco {
	private static final int TAMANIO = 4;
	
	public Buque(List<Posicion> listaDePosiciones, Direccion unaDireccion) throws CantidadDePosicionesIncorrectasExcepcion {
		crearBarco(listaDePosiciones, unaDireccion, TAMANIO);
	}
    
	protected void recibirDanio (Posicion posicionDeExplosion) {
		// Si posicionDeExplosion estra entre las posiciones del barco,
		// todas las partes del barco son dañadas.
		if (posiciones.contains(posicionDeExplosion)) {
			for (Parte parte: partes) {
				parte.recibirDanio();
			}
		}
    }
	
	public static int getTamanio() {
		return TAMANIO;
	}
	
	@Override
    public void recibirDanioDisparo (Posicion posicionDeExplosion) {
    	recibirDanio(posicionDeExplosion);
    }
	
	@Override
    public void recibirDanioPuntualConRetardo (Posicion posicionDeExplosion) {
    	recibirDanio(posicionDeExplosion);
    }
	
	@Override
    public void recibirDanioDobleConRetardo (Posicion posicionDeExplosion) {
    	recibirDanio(posicionDeExplosion);
    }
	
	@Override
    public void recibirDanioTripleConRetardo (Posicion posicionDeExplosion) {
    	recibirDanio(posicionDeExplosion);
    }
	
	@Override
    public void recibirDanioMinaDeContacto (Posicion posicionDeExplosion) {
    	recibirDanio(posicionDeExplosion);
    }
}
